package com.whfc.emp.service;

import com.whfc.emp.dto.AppEmpWorkPlanWarnDTO;
import com.whfc.common.exception.BizException;
import java.util.List;

/**
 * 工作计划报警视图服务接口
 */
public interface AppEmpWorkPlanWarnService {
    
    /**
     * 查询所有工作计划报警记录
     */
    List<AppEmpWorkPlanWarnDTO> getAllWorkPlanWarns() throws BizException;
    
    /**
     * 根据工作计划ID查询报警记录
     */
    List<AppEmpWorkPlanWarnDTO> getWarnsByPlanId(Integer planId) throws BizException;
    
    /**
     * 根据监理ID查询报警记录
     */
    List<AppEmpWorkPlanWarnDTO> getWarnsByGuardianId(String guardianId) throws BizException;
    
    /**
     * 根据报警规则ID查询记录
     */
    List<AppEmpWorkPlanWarnDTO> getWarnsByRuleId(Integer ruleId) throws BizException;
    
    /**
     * 根据触发对象ID查询记录
     */
    List<AppEmpWorkPlanWarnDTO> getWarnsByTriggerObjectId(Integer triggerObjectId) throws BizException;
    
    /**
     * 查询当前有效的计划报警记录
     */
    List<AppEmpWorkPlanWarnDTO> getCurrentValidPlanWarns() throws BizException;
    
    /**
     * 查询包含多个监理的工作计划报警记录
     */
    List<AppEmpWorkPlanWarnDTO> getPlansWithMultipleGuardians() throws BizException;
    
    /**
     * 根据规则类型查询报警记录
     */
    List<AppEmpWorkPlanWarnDTO> getWarnsByRuleType(Integer ruleType) throws BizException;
    
    /**
     * 统计监理负责的报警数量
     */
    Integer countWarnsByGuardianId(String guardianId) throws BizException;
}